package org.dromara.netbar.domain.bo;

import org.dromara.netbar.domain.NetbarMember;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;

/**
 * 会员信息业务对象 netbar_member
 *
 * @author Lion Li
 * @date 2025-06-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = NetbarMember.class, reverseConvertGenerate = false)
public class NetbarMemberBo extends BaseEntity {

    private String tenantId;
    /**
     * 会员ID
     */
    @NotNull(message = "会员ID不能为空", groups = { EditGroup.class })
    private Long memberId;

    /**
     * 会员账号
     */
    @NotBlank(message = "会员账号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String memberName;

    /**
     * 会员类型（normal普通会员）
     */
    private String memberType;

    /**
     * 会员等级ID
     */
    private Long memberLevelId;

    /**
     * 身份证/唯一标识
     */
    private String account;

    /**
     * 身份证类型
     */
    private String idCardType;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 出生日期
     */
    private String dob;

    /**
     * 民族
     */
    private String ethnicity;

    /**
     * 住址地址
     */
    private String address;

    /**
     * 发证机关
     */
    private String police;

    /**
     * 身份证有效期限-开始
     */
    private String userlifeb;

    /**
     * 身份证有效期限-结束
     */
    private String userlifee;

    /**
     * 身份证base64
     */
    private String photobase64;

    /**
     * 手机号码
     */
    private String phonenumber;

    /**
     * 性别（0男 1女 2未知）
     */
    private String sex;

    /**
     * 头像地址
     */
    private Long avatar;

    /**
     * 密码
     */
    private String password;

    /**
     * 基础余额
     */
    private Long baseBalance;

    /**
     * 奖励余额
     */
    private Long awardBalance;

    /**
     * 状态（0正常 1在线 2挂机 3待上机）
     */
    private String status;

    /**
     * 最后登录IP
     */
    private String lastLoginIp;

    /**
     * 最后登录时间
     */
    private Date lastLoginTime;

    /**
     * 微信OpenID
     */
    private String openid;

    /**
     * 备注
     */
    private String remark;

    private Long clientId;

    private String paymentMethod;
}
